iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 26
1
自我挑戰組

學習30天的c++系列 第 26

DAY26 學習30天的c++

  • 分享至 

  • xImage
  •  

cin成員函數
除了使用setw()函數設定輸出格式外,還可用cin成員函數更改cin的預設輸入格式。這些可更改cin輸入格式的成員函數如:.width()、.getline()、.get()、.ignore()函數包含於cin函數中,一樣使用前需先插入iostream標題檔。
cin.width():

  • width成員函數可更改cin輸入欄位寬度,相當於setw()函數的功能。
cin.width(6);                  //相當於cin >> setw(6);

cin.width()練習:

#include <iostream>
#include <iomanip>
using namespace std;

int main(int argc, char** argv)
{
	char string[5];
	cout << "輸入字串:";
	cin.width(5);
	cin >> string;
	cout << "輸入字串是:" << string << endl;
	system("PAUSE");
	return 0; 
}

輸出結果:
https://ithelp.ithome.com.tw/upload/images/20201009/20130658UMfZXObETs.png

cin.getline()

  • getline:是讀取鍵盤輸入資料包含空白,直到輸入"Enter"鍵為止。若輸入的字元數大於指定輸入的長度時,則大部分將被刪除。
char sentence[87];               //宣告字串變數
cin.getline(sentence, 87, 'n');  //取得包含空白子句

cin.getline()練習:

#include <iostream>
using namespace std;

int main(int argc, char** argv)
{
	char sentence[87];
	cout << "輸入字串:";
	cin.getline(sentence, 87);
	cout << "輸入字串是:" << sentence << endl;
	system("PAUSE");
	return 0; 
}

輸出結果:
https://ithelp.ithome.com.tw/upload/images/20201009/20130658kfyKQw8Lp3.png

cin.get():

  • get:是取得一個鍵盤字元資料並存入字元變數中。
  • 字元變數:是使用char宣告的變數。
  • 在執行cin.get()時,等待使用者輸入任意鍵直到按"Enter"鍵結束輸入,但cin.get()指讀取第一個輸入的字元存入字元變數中。
  • 若輸入緩衝器已存在前一次輸入的資料(含"Enter"),cin.get()將直接取得之前入"Enter"鍵而結束輸入。所以執行cin.get()之前,可使用cin.ignore()忽略前次輸入的資料,以便輸入新的資料。
char key;             //宣告字元變數key
cin.get(key)               //取得鍵盤按鍵

cin.get()練習:

#include <iostream>
using namespace std;

int main(int argc, char** argv)
{
	char key;
	cout << "輸入字串:";
	cin.get(key);
	cout << "輸入字串是:" << key << endl;
	system("PAUSE");
	return 0; 
}

輸出結果:
https://ithelp.ithome.com.tw/upload/images/20201009/201306587tqjoceMOM.png


上一篇
DAY25 學習30天的c++
下一篇
DAY27 學習30天的c++
系列文
學習30天的c++30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言